package com.enjoyor.soa.traffic.api.service.dubbo.iems;

import java.util.List;

import com.enjoyor.soa.traffic.api.dto.iems.ResourceHeadQuarterDto;
import com.enjoyor.soa.traffic.api.dto.iems.ResourcePointDto;
import com.enjoyor.soa.traffic.api.enums.EnumResourcePointSubType;
import com.enjoyor.soa.traffic.api.enums.EnumResourcePointType;
import com.enjoyor.soa.traffic.api.enums.PageType;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * @author 周宏伟
 * @date 2017年4月29日
 * @email zhouhongwei@enjoyor.net
 * @description 应急资源信息服务
 */

public interface DubboEventResourceInfoService {
	/**
	 * 添加指挥部信息
	 * 
	 * @param token
	 *            令牌
	 * @param dto
	 *            指挥部信息对象
	 * @return
	 */
	public ResultPojo addHeadQuarter(String token, ResourceHeadQuarterDto dto);

	public ResultPojo addHeadQuarter(String token, List<ResourceHeadQuarterDto> dtoList);

	public ResultPojo addHeadquarterById(String token, String batchId, String eventId, String id);

	/**
	 * 获取指挥部列表
	 * 
	 * @param token
	 * @param id
	 *            指挥部编号
	 * @param batchId
	 *            流水号
	 * @param eventId
	 *            警情编号
	 * @param planId
	 *            预案编号
	 * @return
	 */
	public ResultPojo getHeadQuarter(String token, String id, String batchId, String eventId, String planId);

	/**
	 * 获取最近关联的指挥部列表
	 * 
	 * @param token
	 * @param eventId
	 * @param oprType
	 * @return
	 */
	public ResultPojo listLatestEventHeadquarter(String token, String eventId, String oprType);

	/**
	 * 获取最近关联的兴趣点列表
	 * 
	 * @param token
	 * @param eventId
	 * @param oprType
	 * @return
	 */
	public ResultPojo listEventPoint(String token, String eventId, String oprType);

	/**
	 * 获取指挥部分页列表
	 * 
	 * @param token
	 *            令牌
	 * @param page
	 *            分页参数
	 * @param pagetype
	 *            分页类型
	 * @param id
	 *            编号
	 * @param name
	 *            名称
	 * @param deptId
	 *            部门编号
	 * @param leaderId
	 *            领导者编号
	 * @param beginTime
	 *            设立时间开始范围
	 * @param endTime
	 *            设立时间结束范围
	 * @return ResourceHeadQuarterDto分页集合
	 */
	@SuppressWarnings("rawtypes")
	public ResultPojo getHeadQuarter(String token, Page page, PageType pagetype, String id, String batchId,
			String eventId, String planId);

	/**
	 * 写入兴趣点信息
	 * 
	 * @param token
	 *            令牌
	 * @param dto
	 *            兴趣点对象
	 * @return
	 */
	public ResultPojo addPoint(String token, ResourcePointDto dto);

	/**
	 * 获取兴趣点列表信息
	 * 
	 * @param token
	 *            令牌
	 * @param id
	 *            编号
	 * @param name
	 *            名称
	 * @param address
	 *            地址
	 * @param type
	 *            类型
	 * @param subtype
	 *            子类
	 * @return ResourcePointDto集合
	 */
	public ResultPojo getPoint(String token, String id, EnumResourcePointType type, EnumResourcePointSubType subtype,
			String batchId, String eventId, String planId);

}
